1. Field of the Invention
The present invention relates to the control of data storage devices, and more particularly to a system for processing servo control signals.
2. Prior Art
As shown in FIG. 2, concentric recording tracks X2 are formed on the recording surface of a magnetic disk X1 used as a recording medium in a disk drive device. Servo areas X3, in which servo sectors including a servo pattern, an ID, and the like are recorded, are provided at certain angular intervals (for example, 360xc2x0/80) in the recording tracks X2, and data areas X4, in which data sectors X5 are recorded, are provided between adjacent servo areas X3. In some disk drive devices of this type, these data areas X4 are divided into several areas (zones) in the radial direction, and the number of data sectors X5 recorded in each zone is made responsive to the radial position to produce a more uniform recording density.
In these disk drive devices, when a sector is specified for a read or write operation, seek control is performed to move a head X6 to the track in which the sector to be read or written to is located (the target track); after the head X6 has reached the target track, track following control is carried out to adjust the position of the head X6 so that the head X6 follows the track, and the specified sector is read or written.
As shown in FIG. 3, a servo pattern (WEDGE-A, WEDGE-B, WEDGE-C, WEDGE-D) and an ID (CYLID) are recorded in the above-mentioned servo area X3; when the head X6 passes over these servo patterns, the reproduced outputs of the servo pattern and ID, reproduced by the head X6, are supplied to an HDC X9. When supplied with these reproduced outputs, the HDC X9 determines from them the current position of the head X6, and finds the error (positional error) with respect to the target track. From the positional error, the HDC X9 also determines data (servo data) for driving a voice coil motor (VCM) X8 that moves a head arm X7.
In seek control, the HDC X9 determines the difference between the current position of the head X6 and the position of the target sector (the positional error), and carries out control responsive to this positional error. When a target track is designated, the HDC X9 first executes control to accelerate the head X6 toward the target sector. Next, when the velocity of motion of the head X6 reaches a certain velocity, the HDC X9 executes control to move the head X6 at a constant velocity. Finally, when the head X6 reaches the vicinity of the target sector, control (settling control) is executed to decelerate the head X6.
When the head X6 reaches the target track, the HDC X9 switches over to track-following control to make the head X6 follow the target track. These control switchovers are carried out by changing parameters of the calculations that determine the servo data.
An MPU is provided in the HDC X9 to execute input and output control of data with an external device, error processing, and the like. To reduce costs, having the MPU execute all of the above-described servo control, including seek control, following control, and the like, could be considered. With this configuration, however, attempts to enhance operating speed and accuracy in servo control would increase the MPU""s control load, and this would limit attainable speed and accuracy.
If a DSP or another MPU is provided separately from the MPU to enhance the speed and accuracy of servo control, this DSP or other MPU will generally have functions not required for servo control, so it will unnecessarily increase the cost of the device.
The inventors of the present invention have therefore proposed, in Japanese Patent Application No. 9-218641 filed previously, a disk drive device provided with a hardware sequencer (SA: Servo Assist), separate from the MPU, that executes calculations for determining servo data based on the reproduced output of servo sectors and the like.
Providing a servo assist separate from the MPU reduces the processing load of the MPU, and provides advanced servo control without unduly increasing the processing load of the MPU.
In the disk drive device of the previous application, however, the servo assist itself was specialized for servo data calculations, so it could not decide whether to execute exception processing for recording/reproduction inhibition at so-called off-track times, or for errors and the like; so when each servo sector was reproduced, the servo assist generated an MPU interrupt to have the MPU decide whether or not to execute exception processing.
Therefore, if the magnetic disk X1 rotation speed is increased for a purpose such as enhancing the speed of reading and writing, or if the number of servo areas X3 is increased for a purpose such as enhancing the accuracy of servo control, servo sectors are reproduced more frequently, the frequency of interrupts increases, and the processing overhead for deciding about exception processing becomes large in relation to the total processing of the MPU.
The MPU processing capability assigned to input/output control of data with an external device, or to error processing and the like, is thereby diminished, and the performance of the disk drive device is impaired.
An object of the present invention, is to provide a servo control system that reduces the MPU processing load improves storage device performance.
To solve the problems described above, a storage device according an embodiment of the present invention comprises a disk-shaped recording medium having servo areas in which servo sectors are recorded and data areas in which data sectors are recorded; a read/write head to read and write the data sectors, and to read the servo sectors on the disk-shaped recording medium; a head actuator to control the position of the read/write head; a storage controller to control data sector read and write operations by the read/write head; a servo controller to determine a position of the read/write head from the servo sector output read by the read/write head; a servo assist unit, separate from the storage controller, to calculate servo data for controlling the head actuator based on position information extracted by the servo controller and read/write head; and an interrupt generator to generate interrupt requests to the storage controller as determined by results of the servo assist unit computations.
At least the controller, the servo assist unit, and the interrupt generator may be formed as a single semiconductor device. The interrupt generator may set an operating mode responsive to the position information detected by the servo controller, and may select whether to generate an interrupt request to the storage controller when each servo sector is read, or to generate interrupt requests to the storage controller based on the results of the servo assist unit computations, depending upon the operating mode.